<?xml version="1.0" encoding="utf-8" ?>
<!--Created with Liquid XML Studio - Education Edition 7.1.1.1206 (http://www.liquid-technologies.com)-->
<xsi:schema xmlns:msdata="urn:schemas-microsoft-com:xml-msdata" xmlns:gml="http://www.opengis.net/gml" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:sql="urn:schemas-microsoft-com:mapping-schema" xmlns="http://www.cuahsi.org/waterML/1.0/" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema" attributeFormDefault="unqualified" elementFormDefault="qualified" targetNamespace="http://www.cuahsi.org/waterML/1.0/" version="1.1">
  <xs:annotation>
    <xs:documentation> 
Changes: 
2006-07-10 valentine 
            removed choice. Replaced with Types
            defined TimePeriodType
                TimeIntervalType
                TimeSingleType
            added GeogLocationType to hold the geometry
                redefined LatLongPoint as a type
                defined LatLongBox to hold
                 defined simpleTypes Latitude and Longitude
            added DataSetLocation Element (type GeogLocationType) to dataset info
            removed xlink namespace. Just used the xlink concept (problems getting it to compile with xlink schema)
2006-08-30 valentine
    MANY CHANGES to:
         sync with the Observations Database terminolog
         simplify. Removed many unneeded types. (initial version was Type happy)
         types mostly used only when needed (Geometry, SourceInfo, TimeSeries, Notes, Enumerations).
       *** Element Case Standardize  ****
           All types are PascalCase
           All CUAHSI elements and attributes are camelCase
       * All root response elements are now elements, and not types
          ** SitesResponse
          ** TimeSeriesResponse (not timeSeriesType)
          ** VariablesResponse
       * extension elements added.
           ** These are extension points for groups like
              the USGS that wish to include more information than the normal community uses.
       * enumerations added
          * unitType
          * censorCode  (characters used because symbols make for unmaintainable source code)
             * lt  - less than
             * gt  - greater than
             * nc  - no code
       * variable types consolidated
       * units element added
       * consistent siteID/variableID pattern (both include a XXXCode)
       * Remove many types
          ** too many to list.
       * values == TsValuesType renamed from TsValuesSingleVariableType
          ** split values element out to type  ValueSingleVar (c# change tsValuesTypeValueType to ValueSingleVar).
          ** qualifier elements can be added after the final value element in the Values element.
          *** we don't know the full list of included qualifiers until we get done with the values.
          *** at present, qualifiers attribute in the value element is an aggregated field.
          element block looks like:
          = values
          == value qualifers=&amp;quot;A&amp;quot;
          == value qualifers=&amp;quot;Ae&amp;quot;
          == qualifier qualifierCode=&amp;quot;A&amp;quot;      &amp;quot;Approved&amp;quot;
          == qualifier qualifierCode=&amp;quot;e&amp;quot;      &amp;quot;Estimated. This value has been estimated.&amp;quot;
2006-09-08
   variableID renamed variableCode
   siteID renamed siteCode
      siteID and variableID attributes added, xxCode removed
   siteCode name moved into siteInfo

2006-09-15
   variable/name to variable/variableName
   variablePeriod to variablePeriodOfObservation

2006-09-17
   added QualityControlLevelEnum
   added attribute qualityControlLevel to valueAttribute group. (affects ValueSingleVariable)
   added qualityControlLevel element, and element to the TSValuesSingleVariableType
   namespace changed to http://www.cuahsi.org/waterML/1.0/
   return to types for top level elements, without this they get named getValuesResponse
   added note to siteInfoElement. We need to put the URL or Retireved from DB not in this block.
   added TimePeriodRealTime. Need to represent real time data.
2006-0920
   variablePeriodofRecorr to seriesCatalog
   variablePeriodOfObservation to series
   variableObservationCount to valueCount (to match the OD)
   added enumerations from the OD
      valueTypeEnum
      generalCategoryEnum
      sampleMediumEnum
      dataTypeEnum
2006-09-24
   queryInfo/criteria/timeParam is now a sequence, since a start or end time can be null
   The community wants it to be easy, and VB and other .net have problems with some values:
      converted xsd:decimal to xsd:double. decimal is not well handled by VB
      converted tsValuesSingleVaribaleType/count from xsd:nonNegativeInteger to xsd:int.
2006-09-28
   API signature has been changed to strings.
   queryInfo/timeInterval/... changed to strings
2007-07-09
   ODM seriesCatalog table added columns. Columns now added
   DataValue element was missing: DataType(eg statistic), Method, Source, and QualityControlLevel.
2007-08-28
  added to values method[](methodType), source[](SourceType)
  added &amp;quot;Unknown&amp;quot; to many enumerations.
  contactInformation in sourceType changed to unbounded
2007-08-29
  DT/DM believes that including an offsetDescription on every element is verbose
  offsetTypeID attribute added to offsetAttr
  offsetType Type added, Designed to be a bit more extensible, and handle
2007-08-30
  restored attributes that had the offset information on the values
  offsetAttr restored attr
    offsetUnitsAbbreviation
    offsetUnitsCode
    offsetDescription
2007-11-14
   Many services use agency (aka EPA, and USGS)
     added attributes agencyCode and AgencyName to siteCode.
 2007-11-29
    SiteInfo/TimezoneInfo min occurs 0 max 1
    Series/QualityControlLevel min occurs 0 max 1
20090-05-08
    changed minOccurs for many components to make output validate
</xs:documentation>
  </xs:annotation>
  <xs:complexType name="SiteInfoType">
    <xs:annotation>
      <xs:documentation>A sampling station is any place where data are collected.</xs:documentation>
    </xs:annotation>
    <xs:complexContent mixed="false">
      <xs:extension base="SourceInfoType">
        <xs:sequence>
          <xs:element minOccurs="0" name="siteName" type="xs:string" />
          <xs:element maxOccurs="unbounded" name="siteCode">
            <xs:annotation>
              <xs:documentation>A siteID is an identifier that this site is referred to as.
					There may be multiple siteID elements. Only one should be labeled as the defaultID (set attribute defaultID=true)
					Multiple siteID elements are allowed because site identifiers may change, 
					and different observation networks may refer to the same site with different identifiers.</xs:documentation>
            </xs:annotation>
            <xs:complexType>
              <xs:simpleContent>
                <xs:extension base="xs:string">
                  <xs:attribute name="defaultId" type="xs:boolean">
                    <xs:annotation>
                      <xs:documentation>
								True if this is the main identifier that this service uses to access this site.
				default value is false.
							</xs:documentation>
                    </xs:annotation>
                  </xs:attribute>
                  <xs:attribute name="network" type="xs:normalizedString" use="required">
                    <xs:annotation>
                      <xs:documentation>The name of the observation network that this site identification is use for.</xs:documentation>
                    </xs:annotation>
                  </xs:attribute>
                  <xs:attribute name="siteID" type="xs:normalizedString">
                    <xs:annotation>
                      <xs:documentation>
								An identifier of the site, the type of identifier must be specified.
							</xs:documentation>
                    </xs:annotation>
                  </xs:attribute>
                  <xs:attribute name="agencyCode" type="xs:normalizedString" />
                  <xs:attribute name="agencyName" type="xs:normalizedString" />
                </xs:extension>
              </xs:simpleContent>
            </xs:complexType>
          </xs:element>
          <xs:element minOccurs="0" ref="timeZoneInfo">
            <xs:annotation>
              <xs:documentation>the default time zone for this site (+00:00) and if this site shifts to daylight savings time (attribute: usesDaylightSavingsTime)</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" maxOccurs="1" name="geoLocation">
            <xs:complexType>
              <xs:sequence>
                <xs:element name="geogLocation" type="GeogLocationType" />
                <xs:element minOccurs="0" maxOccurs="unbounded" name="localSiteXY">
                  <xs:complexType>
                    <xs:sequence>
                      <xs:element name="X" type="xs:double" />
                      <xs:element name="Y" type="xs:double" />
                      <xs:element minOccurs="0" maxOccurs="1" name="Z" type="xs:double" />
                      <xs:element minOccurs="0" maxOccurs="unbounded" name="note" type="NoteType" />
                    </xs:sequence>
                    <xs:attribute name="projectionInformation" type="xs:string" />
                  </xs:complexType>
                </xs:element>
              </xs:sequence>
            </xs:complexType>
          </xs:element>
          <xs:element minOccurs="0" maxOccurs="1" name="elevation_m" type="xs:double" />
          <xs:element minOccurs="0" maxOccurs="1" name="verticalDatum" type="xs:string" />
          <xs:element minOccurs="0" maxOccurs="unbounded" name="note" type="NoteType" />
          <xs:element minOccurs="0" ref="extension" />
          <xs:element minOccurs="0" name="altname" type="xs:string" />
        </xs:sequence>
        <xs:attributeGroup ref="DbIdentifiers" />
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="TsValuesSingleVariableType">
    <xs:sequence>
      <xs:element minOccurs="1" maxOccurs="unbounded" name="value" type="ValueSingleVariable">
        <xs:annotation>
          <xs:documentation>text</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="unbounded" ref="qualifier" />
      <xs:element minOccurs="0" maxOccurs="1" ref="qualityControlLevel" />
      <xs:element minOccurs="0" maxOccurs="unbounded" name="method" type="MethodType" />
      <xs:element minOccurs="0" maxOccurs="unbounded" name="source" type="SourceType" />
      <xs:element minOccurs="0" maxOccurs="unbounded" name="offset" type="OffsetType" />
    </xs:sequence>
    <xs:attribute name="timeZoneShiftApplied" type="xs:boolean" use="optional">
      <xs:annotation>
        <xs:documentation>True is a webservice has transformed the time zone from the original data.</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attributeGroup ref="unitsAttr">
      <xs:annotation>
        <xs:documentation>the measurment units of the value elements in this values element
          </xs:documentation>
      </xs:annotation>
    </xs:attributeGroup>
    <xs:attribute name="count" type="xs:nonNegativeInteger">
      <xs:annotation>
        <xs:documentation />
      </xs:annotation>
    </xs:attribute>
    <xs:attribute default="false" name="unitsAreConverted" type="xs:boolean">
      <xs:annotation>
        <xs:documentation>True is a webservice has transformed the data from the original units.</xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:complexType>
  <xs:complexType name="VariableInfoType">
    <xs:sequence>
      <xs:sequence>
        <xs:element minOccurs="1" maxOccurs="unbounded" ref="variableCode">
          <xs:annotation>
            <xs:documentation />
          </xs:annotation>
        </xs:element>
        <xs:element minOccurs="0" name="variableName" type="xs:string">
          <xs:annotation>
            <xs:documentation>A brief name of the variable that could be shown in a menu</xs:documentation>
          </xs:annotation>
        </xs:element>
        <xs:element minOccurs="0" name="variableDescription" type="xs:string">
          <xs:annotation>
            <xs:documentation>A detailed descriptn of the variable. May include processing information and other details.</xs:documentation>
          </xs:annotation>
        </xs:element>
        <xs:element minOccurs="0" maxOccurs="1" name="valueType" type="valueTypeEnum" />
        <xs:element minOccurs="0" name="dataType" type="dataTypeEnum" />
        <xs:element minOccurs="0" name="generalCategory" type="generalCategoryEnum" />
        <xs:element minOccurs="0" maxOccurs="1" name="sampleMedium" type="SampleMediumEnum" />
        <xs:element minOccurs="0" ref="units">
          <xs:annotation>
            <xs:documentation>The units of the measurement.</xs:documentation>
          </xs:annotation>
        </xs:element>
        <xs:element minOccurs="0" maxOccurs="1" ref="options">
          <xs:annotation>
            <xs:documentation>A list of options. Options are key-value pair elements that control how a variable maght be utilized in a serviced.
            Examples are in the MODIS web service. Information is aggreated over land or ocean or both. The plotarea option can include: plotarea=land, plotarea=land, plotarea=landocean</xs:documentation>
          </xs:annotation>
        </xs:element>
        <xs:element minOccurs="0" maxOccurs="unbounded" name="note" type="NoteType">
          <xs:annotation>
            <xs:documentation />
          </xs:annotation>
        </xs:element>
        <xs:element minOccurs="0" name="related">
          <xs:complexType>
            <xs:sequence maxOccurs="unbounded">
              <xs:element name="parentID">
                <xs:complexType>
                  <xs:simpleContent>
                    <xs:extension base="xs:string">
                      <xs:attributeGroup ref="VocabularyAttributes" />
                    </xs:extension>
                  </xs:simpleContent>
                </xs:complexType>
              </xs:element>
              <xs:element name="relatedID">
                <xs:complexType>
                  <xs:simpleContent>
                    <xs:extension base="xs:string">
                      <xs:attributeGroup ref="VocabularyAttributes" />
                    </xs:extension>
                  </xs:simpleContent>
                </xs:complexType>
              </xs:element>
            </xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:element minOccurs="0" ref="extension" />
        <xs:element minOccurs="0" name="NoDataValue" type="xs:string" />
        <xs:element minOccurs="0" name="timeSupport" nillable="true">
          <xs:complexType>
            <xs:sequence>
              <xs:element minOccurs="0" maxOccurs="1" name="unit" type="UnitsType" />
              <xs:element minOccurs="0" maxOccurs="1" name="timeInterval" type="xs:int" />
            </xs:sequence>
            <xs:attribute name="isRegular" type="xs:boolean" />
          </xs:complexType>
        </xs:element>
      </xs:sequence>
    </xs:sequence>
    <xs:attributeGroup ref="DbIdentifiers" />
    <xs:attributeGroup ref="VocabularyAttributes" />
  </xs:complexType>
  <xs:complexType name="QueryInfoType">
    <xs:annotation>
      <xs:documentation />
    </xs:annotation>
    <xs:sequence>
      <xs:element minOccurs="0" name="creationTime" type="xs:dateTime">
        <xs:annotation>
          <xs:documentation />
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" name="queryURL" type="xs:string">
        <xs:annotation>
          <xs:documentation />
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" name="querySQL" type="xs:string">
        <xs:annotation>
          <xs:documentation />
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" name="criteria">
        <xs:complexType>
          <xs:sequence minOccurs="0">
            <xs:element minOccurs="0" name="locationParam" type="xs:string">
              <xs:annotation>
                <xs:documentation />
              </xs:annotation>
            </xs:element>
            <xs:element minOccurs="0" name="variableParam" type="xs:string">
              <xs:annotation>
                <xs:documentation />
              </xs:annotation>
            </xs:element>
            <xs:element minOccurs="0" name="timeParam">
              <xs:annotation>
                <xs:documentation />
              </xs:annotation>
              <xs:complexType>
                <xs:sequence>
                  <xs:element minOccurs="0" maxOccurs="1" name="beginDateTime" type="xs:string" />
                  <xs:element minOccurs="0" maxOccurs="1" name="endDateTime" type="xs:string" />
                </xs:sequence>
              </xs:complexType>
            </xs:element>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="unbounded" name="note" type="NoteType" />
      <xs:element minOccurs="0" ref="extension" />
    </xs:sequence>
  </xs:complexType>
  <xs:element name="variables">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="1" maxOccurs="unbounded" name="variable" type="VariableInfoType" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="VocabularyAttributes">
    <xs:attribute name="network" type="xs:string">
      <xs:annotation>
        <xs:documentation />
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="vocabulary" type="xs:string">
      <xs:annotation>
        <xs:documentation />
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="default" type="xs:boolean" />
  </xs:attributeGroup>
  <xs:attributeGroup name="DbIdentifiers">
    <xs:attribute name="oid" type="xs:normalizedString" />
    <xs:attribute name="metadataDateTime" type="xs:dateTime" />
  </xs:attributeGroup>
  <xs:complexType name="DataSetInfoType">
    <xs:complexContent mixed="false">
      <xs:extension base="SourceInfoType">
        <xs:sequence>
          <xs:element name="dataSetIdentifier" type="xs:string" />
          <xs:element minOccurs="0" ref="timeZoneInfo" />
          <xs:element minOccurs="0" name="dataSetDescription" type="xs:string" />
          <xs:element minOccurs="0" maxOccurs="unbounded" name="note" type="NoteType" />
          <xs:element minOccurs="0" maxOccurs="1" name="dataSetLocation" type="GeogLocationType" />
          <xs:element minOccurs="0" ref="extension" />
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:element name="timeZoneInfo">
    <xs:annotation>
      <xs:documentation>the default time zone for this site (+00:00) and if this site shifts to daylight savings time (attribute: usesDaylightSavingsTime)</xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" maxOccurs="1" name="defaultTimeZone">
          <xs:complexType>
            <xs:attributeGroup ref="timeZoneAttr" />
          </xs:complexType>
        </xs:element>
        <xs:element minOccurs="0" maxOccurs="1" name="daylightSavingsTimeZone">
          <xs:complexType>
            <xs:attributeGroup ref="timeZoneAttr" />
          </xs:complexType>
        </xs:element>
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="ValueAttr">
    <xs:attribute name="qualifiers" type="xs:string">
      <xs:annotation>
        <xs:documentation />
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="censorCode" type="CensorCodeEnum">
      <xs:annotation>
        <xs:documentation />
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="dateTime" type="xs:dateTime" />
    <xs:attribute name="qualityControlLevel" type="QualityControlLevelEnum" />
    <xs:attribute name="methodID" type="xs:int" />
    <xs:attribute name="sourceID" type="xs:int" />
    <xs:attribute name="accuracyStdDev" type="xs:double" />
    <xs:attribute name="codedVocabulary" type="xs:boolean" />
    <xs:attribute name="codedVocabularyTerm" type="xs:string" />
    <xs:attribute name="sampleID" type="xs:int" />
  </xs:attributeGroup>
  <xs:attributeGroup name="timeZoneAttr">
    <xs:attribute name="ZoneAbbreviation" type="xs:normalizedString" use="optional">
      <xs:annotation>
        <xs:documentation>the standard abbreviation for this time zone (GMT; EST)</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="ZoneOffset" type="xs:string" use="required">
      <xs:annotation>
        <xs:documentation>Hours and minutes offset for this time zone  (+00:00).</xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:attributeGroup>
  <xs:element name="optionGroup">
    <xs:complexType>
      <xs:sequence>
        <xs:element maxOccurs="unbounded" ref="option" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:complexType name="DocumentationType" mixed="true">
    <xs:attribute name="type" type="DocumentationEnumTypes" />
    <xs:attributeGroup ref="XLinkAttr" />
  </xs:complexType>
  <xs:simpleType name="DocumentationEnumTypes">
    <xs:union memberTypes="xs:token">
      <xs:simpleType>
        <xs:restriction base="xs:token">
          <xs:enumeration value="funding" />
          <xs:enumeration value="history" />
          <xs:enumeration value="processing_level" />
          <xs:enumeration value="rights" />
          <xs:enumeration value="summary" />
        </xs:restriction>
      </xs:simpleType>
    </xs:union>
  </xs:simpleType>
  <xs:attributeGroup name="XLinkAttr">
    <xs:attribute name="href" type="xs:string" />
    <xs:attribute name="title" type="xs:string" />
    <xs:attribute name="show" type="xs:string" />
  </xs:attributeGroup>
  <xs:element name="options">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" maxOccurs="unbounded" ref="option" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:complexType name="SourceInfoType" />
  <xs:complexType name="TimePeriodType">
    <xs:sequence />
  </xs:complexType>
  <xs:complexType name="TimeIntervalType">
    <xs:complexContent mixed="false">
      <xs:extension base="TimePeriodType">
        <xs:sequence>
          <xs:element name="beginDateTime" type="xs:dateTime" />
          <xs:element name="endDateTime" type="xs:dateTime" />
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="TimeSingleType">
    <xs:complexContent mixed="false">
      <xs:extension base="TimePeriodType">
        <xs:sequence>
          <xs:element name="timeSingle" type="xs:dateTime" />
          <xs:element name="beginDateTime" type="xs:dateTime" />
          <xs:element name="endDateTime" type="xs:dateTime" />
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="GeogLocationType">
    <xs:sequence />
    <xs:attribute default="EPSG:4326" name="srs" type="xs:string" use="optional" />
  </xs:complexType>
  <xs:complexType name="LatLonPointType">
    <xs:complexContent mixed="false">
      <xs:extension base="GeogLocationType">
        <xs:sequence>
          <xs:element name="latitude" type="Latitude">
            <xs:annotation>
              <xs:documentation>
            The latitude of the site in a decimal degrees as calculated in terms of the given datum.
          </xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element name="longitude" type="Longitude">
            <xs:annotation>
              <xs:documentation>
            The longitude of the site in a decimal degrees as calculated in terms of the given datum.
          </xs:documentation>
            </xs:annotation>
          </xs:element>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="LatLonBoxType">
    <xs:complexContent mixed="false">
      <xs:extension base="GeogLocationType">
        <xs:sequence>
          <xs:element name="south" type="Latitude" />
          <xs:element name="west" type="Longitude" />
          <xs:element name="north" type="Latitude" />
          <xs:element name="east" type="Longitude" />
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:simpleType name="Longitude">
    <xs:restriction base="xs:double">
      <xs:minInclusive value="-180.00" />
      <xs:maxInclusive value="180.00" />
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="Latitude">
    <xs:restriction base="xs:double">
      <xs:minInclusive value="-90.00" />
      <xs:maxInclusive value="90.00" />
    </xs:restriction>
  </xs:simpleType>
  <xs:complexType name="seriesCatalogType">
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="unbounded" name="note" type="NoteType" />
      <xs:element minOccurs="0" maxOccurs="unbounded" name="series">
        <xs:complexType>
          <xs:sequence>
            <xs:element minOccurs="0" maxOccurs="1" name="dataType" type="dataTypeEnum" />
            <xs:element name="variable" type="VariableInfoType" />
            <xs:element name="valueCount">
              <xs:complexType>
                <xs:simpleContent>
                  <xs:extension base="xs:int">
                    <xs:attribute name="countIsEstimated" type="xs:boolean" />
                  </xs:extension>
                </xs:simpleContent>
              </xs:complexType>
            </xs:element>
            <xs:element name="variableTimeInterval" type="TimePeriodType" />
            <xs:element minOccurs="0" maxOccurs="1" name="valueType" type="valueTypeEnum" />
            <xs:element minOccurs="0" maxOccurs="1" name="generalCategory" type="generalCategoryEnum" />
            <xs:element minOccurs="0" maxOccurs="1" name="sampleMedium" type="SampleMediumEnum" />
            <xs:element minOccurs="0" maxOccurs="1" name="Method" type="MethodType" />
            <xs:element minOccurs="0" maxOccurs="1" name="Source" type="SourceType" />
            <xs:element minOccurs="0" maxOccurs="1" name="QualityControlLevel" type="QualityControlLevelType" />
            <xs:element minOccurs="0" maxOccurs="1" ref="extension" />
          </xs:sequence>
        </xs:complexType>
      </xs:element>
    </xs:sequence>
    <xs:attribute name="menuGroupName" type="xs:string" />
    <xs:attribute name="serviceWsdl" type="xs:anyURI" />
  </xs:complexType>
  <xs:attributeGroup name="offsetAttr">
    <xs:attribute name="offsetValue" type="xs:double" />
    <xs:attribute name="offsetTypeID" type="xs:int" />
    <xs:attribute name="offsetDescription" type="xs:string" />
    <xs:attribute name="offsetUnitsAbbreviation" type="xs:string" />
    <xs:attribute name="offsetUnitsCode" type="xs:string" />
  </xs:attributeGroup>
  <xs:simpleType name="CensorCodeEnum">
    <xs:restriction base="xs:string">
      <xs:enumeration value="lt" />
      <xs:enumeration value="gt" />
      <xs:enumeration value="nc" />
      <xs:enumeration value="nd" />
      <xs:enumeration value="pnq" />
    </xs:restriction>
  </xs:simpleType>
  <xs:complexType name="QualifiersType">
    <xs:sequence>
      <xs:element name="qualifier">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="qualifierCode" type="xs:token" />
          </xs:sequence>
          <xs:attribute name="qualifierID" type="xs:int" />
          <xs:attributeGroup ref="VocabularyAttributes" />
        </xs:complexType>
      </xs:element>
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="TimeSeriesType">
    <xs:sequence>
      <xs:element name="sourceInfo" type="SourceInfoType" />
      <xs:element name="variable" type="VariableInfoType" />
      <xs:element name="values" type="TsValuesSingleVariableType" />
    </xs:sequence>
    <xs:attribute name="name" type="xs:string" use="optional" />
  </xs:complexType>
  <xs:element name="variablesResponse" type="VariablesResponseType" />
  <xs:element name="timeSeriesResponse" type="TimeSeriesResponseType" />
  <xs:element name="sitesResponse" type="SiteInfoResponseType" />
  <xs:complexType name="NoteType">
    <xs:simpleContent>
      <xs:extension base="xs:string">
        <xs:attribute name="type" type="xs:string" />
        <xs:attributeGroup ref="XLinkAttr" />
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>
  <xs:element name="option">
    <xs:complexType>
      <xs:simpleContent>
        <xs:extension base="xs:string">
          <xs:attribute name="name" type="xs:normalizedString" />
          <xs:attribute name="optionID" type="xs:integer" />
          <xs:attribute name="optionCode" type="xs:token" />
        </xs:extension>
      </xs:simpleContent>
    </xs:complexType>
  </xs:element>
  <xs:element name="variableCode">
    <xs:complexType>
      <xs:simpleContent>
        <xs:extension base="xs:token">
          <xs:attributeGroup ref="VocabularyAttributes" />
          <xs:attribute name="variableID" type="xs:integer" />
        </xs:extension>
      </xs:simpleContent>
    </xs:complexType>
  </xs:element>
  <xs:element name="units">
    <xs:complexType>
      <xs:simpleContent>
        <xs:extension base="xs:string">
          <xs:attributeGroup ref="unitsAttr" />
        </xs:extension>
      </xs:simpleContent>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="unitsAttr">
    <xs:attribute name="unitsAbbreviation" type="xs:normalizedString" />
    <xs:attribute name="unitsCode" type="xs:token" />
    <xs:attribute name="unitsType" type="UnitsTypeEnum" />
  </xs:attributeGroup>
  <xs:simpleType name="UnitsTypeEnum">
    <xs:restriction base="xs:string">
      <xs:enumeration value="Angle" />
      <xs:enumeration value="Area" />
      <xs:enumeration value="Dimensionless" />
      <xs:enumeration value="Energy" />
      <xs:enumeration value="Energy Flux" />
      <xs:enumeration value="Flow" />
      <xs:enumeration value="Force" />
      <xs:enumeration value="Frequency" />
      <xs:enumeration value="Length" />
      <xs:enumeration value="Light" />
      <xs:enumeration value="Mass" />
      <xs:enumeration value="Permeability" />
      <xs:enumeration value="Power" />
      <xs:enumeration value="Pressure/Stress" />
      <xs:enumeration value="Resolution" />
      <xs:enumeration value="Scale" />
      <xs:enumeration value="Temperature" />
      <xs:enumeration value="Time" />
      <xs:enumeration value="Velocity" />
      <xs:enumeration value="Volume" />
    </xs:restriction>
  </xs:simpleType>
  <xs:complexType name="ValueSingleVariable">
    <xs:simpleContent>
      <xs:extension base="xs:decimal">
        <xs:attributeGroup ref="ValueAttr" />
        <xs:attributeGroup ref="offsetAttr" />
        <xs:attributeGroup ref="DbIdentifiers" />
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>
  <xs:element name="qualifier">
    <xs:complexType>
      <xs:simpleContent>
        <xs:extension base="xs:string">
          <xs:attribute name="qualifierCode" type="xs:token" />
          <xs:attribute name="qualifierID" type="xs:integer" />
          <xs:attributeGroup ref="DbIdentifiers" />
          <xs:attributeGroup ref="VocabularyAttributes" />
        </xs:extension>
      </xs:simpleContent>
    </xs:complexType>
  </xs:element>
  <xs:element name="extension" type="xs:anyType" />
  <xs:complexType name="VariablesResponseType">
    <xs:sequence>
      <xs:element name="queryInfo" type="QueryInfoType" />
      <xs:element minOccurs="1" ref="variables" />
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="TimeSeriesResponseType">
    <xs:sequence>
      <xs:element name="queryInfo" type="QueryInfoType" />
      <xs:element name="timeSeries" type="TimeSeriesType" />
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="SiteInfoResponseType">
    <xs:sequence>
      <xs:element name="queryInfo" type="QueryInfoType" />
      <xs:element minOccurs="0" maxOccurs="unbounded" ref="site" />
    </xs:sequence>
  </xs:complexType>
  <xs:element name="site">
    <xs:complexType>
      <xs:sequence>
        <xs:element name="siteInfo" type="SiteInfoType" />
        <xs:element minOccurs="0" maxOccurs="unbounded" name="seriesCatalog" type="seriesCatalogType" />
        <xs:element minOccurs="0" ref="extension" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:simpleType name="QualityControlLevelEnum">
    <xs:restriction base="xs:string">
      <xs:enumeration value="Raw data" />
      <xs:enumeration value="Quality controlled data" />
      <xs:enumeration value="Derived products" />
      <xs:enumeration value="Interpreted products" />
      <xs:enumeration value="Knowledge products" />
      <xs:enumeration value="Unknown" />
    </xs:restriction>
  </xs:simpleType>
  <xs:element name="qualityControlLevel">
    <xs:complexType>
      <xs:sequence>
        <xs:element name="qualityControlLevelID" type="xs:normalizedString" />
      </xs:sequence>
      <xs:attribute name="qualityControlLevelCode" type="xs:string" />
      <xs:attributeGroup ref="DbIdentifiers" />
      <xs:attributeGroup ref="VocabularyAttributes" />
    </xs:complexType>
  </xs:element>
  <xs:complexType name="TimePeriodRealTimeType">
    <xs:complexContent mixed="false">
      <xs:extension base="TimePeriodType">
        <xs:sequence>
          <xs:element name="realTimeDataPeriod" type="xs:duration" />
          <xs:element name="beginDateTime" type="xs:dateTime" />
          <xs:element name="endDateTime" type="xs:dateTime" />
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:simpleType name="SampleMediumEnum">
    <xs:restriction base="xs:string">
      <xs:enumeration value="Surface Water" />
      <xs:enumeration value="Ground Water" />
      <xs:enumeration value="Sediment" />
      <xs:enumeration value="Soil" />
      <xs:enumeration value="Air" />
      <xs:enumeration value="Tissue" />
      <xs:enumeration value="Precipitation" />
      <xs:enumeration value="Unknown" />
      <xs:enumeration value="Other" />
      <xs:enumeration value="Snow" />
      <xs:enumeration value="Not Relevant" />
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="generalCategoryEnum">
    <xs:restriction base="xs:string">
      <xs:enumeration value="Water Quality" />
      <xs:enumeration value="Climate" />
      <xs:enumeration value="Hydrology" />
      <xs:enumeration value="Geology" />
      <xs:enumeration value="Biota" />
      <xs:enumeration value="Unknown" />
      <xs:enumeration value="Instrumentation" />
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="dataTypeEnum">
    <xs:restriction base="xs:string">
      <xs:enumeration value="Continuous" />
      <xs:enumeration value="Instantaneous" />
      <xs:enumeration value="Cumulative" />
      <xs:enumeration value="Incremental" />
      <xs:enumeration value="Average" />
      <xs:enumeration value="Maximum" />
      <xs:enumeration value="Minimum" />
      <xs:enumeration value="Constant Over Interval" />
      <xs:enumeration value="Categorical" />
      <xs:enumeration value="Best Easy Systematic Estimator " />
      <xs:enumeration value="Unknown" />
      <xs:enumeration value="Variance" />
      <xs:enumeration value="Median" />
      <xs:enumeration value="Mode" />
      <xs:enumeration value="Best Easy Systematic Estimator" />
      <xs:enumeration value="Standard Deviation" />
      <xs:enumeration value="Skewness" />
      <xs:enumeration value="Equivalent Mean" />
      <xs:enumeration value="Sporadic" />
      <xs:enumeration value="Unknown" />
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="sampleTypeEnum">
    <xs:restriction base="xs:string">
      <xs:enumeration value="FD" />
      <xs:enumeration value="FF" />
      <xs:enumeration value="FL" />
      <xs:enumeration value="LF" />
      <xs:enumeration value="GW" />
      <xs:enumeration value="PB" />
      <xs:enumeration value="PD" />
      <xs:enumeration value="PE" />
      <xs:enumeration value="PI" />
      <xs:enumeration value="PW" />
      <xs:enumeration value="RE" />
      <xs:enumeration value="SE" />
      <xs:enumeration value="SR" />
      <xs:enumeration value="SS" />
      <xs:enumeration value="SW" />
      <xs:enumeration value="TE" />
      <xs:enumeration value="TI" />
      <xs:enumeration value="TW" />
      <xs:enumeration value="VE" />
      <xs:enumeration value="VI" />
      <xs:enumeration value="VW" />
      <xs:enumeration value="Grab" />
      <xs:enumeration value="Unknown" />
      <xs:enumeration value="No Sample" />
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="valueTypeEnum">
    <xs:restriction base="xs:string">
      <xs:enumeration value="Field Observation" />
      <xs:enumeration value="Sample" />
      <xs:enumeration value="Model Simulation Result" />
      <xs:enumeration value="Derived Value" />
      <xs:enumeration value="Unknown" />
    </xs:restriction>
  </xs:simpleType>
  <xs:complexType name="UnitsType">
    <xs:sequence>
      <xs:element minOccurs="0" name="UnitName" type="xs:string" />
      <xs:element minOccurs="0" name="UnitDescription" type="xs:string" />
      <xs:element minOccurs="0" name="UnitType" type="UnitsTypeEnum" />
      <xs:element minOccurs="0" name="UnitAbbreviation" type="xs:string" />
    </xs:sequence>
    <xs:attribute name="UnitID" type="xs:int" />
  </xs:complexType>
  <xs:complexType name="MethodType">
    <xs:sequence>
      <xs:element name="MethodDescription" type="xs:string" />
      <xs:element minOccurs="0" name="MethodLink" type="xs:string" />
    </xs:sequence>
    <xs:attribute name="methodID" type="xs:int" />
  </xs:complexType>
  <xs:complexType name="SampleType">
    <xs:sequence>
      <xs:element name="labSampleCode" type="xs:string" />
      <xs:element name="SampleType" type="sampleTypeEnum" />
      <xs:element minOccurs="0" name="LabMethod" type="LabMethodType" />
    </xs:sequence>
    <xs:attribute name="sampleID" type="xs:int" />
  </xs:complexType>
  <xs:complexType name="LabMethodType">
    <xs:sequence>
      <xs:element minOccurs="0" name="labName" type="xs:string" />
      <xs:element minOccurs="0" name="labOrganization" type="xs:string" />
      <xs:element minOccurs="0" name="LabMethodName" type="xs:string" />
      <xs:element minOccurs="0" name="labMethodDescription" type="xs:string" />
      <xs:element name="labMethodLink" type="xs:string" />
    </xs:sequence>
    <xs:attribute name="labMethodID" type="xs:int" />
  </xs:complexType>
  <xs:complexType name="SourceType">
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="1" name="Organization" type="xs:string" />
      <xs:element minOccurs="0" maxOccurs="1" name="SourceDescription" type="xs:string" />
      <xs:element minOccurs="0" name="Metadata" type="MetaDataType" />
      <xs:element minOccurs="0" name="ContactInformation" type="ContactInformationType" />
      <xs:element minOccurs="0" name="SourceLink" type="xs:anyURI" />
    </xs:sequence>
    <xs:attribute name="sourceID" type="xs:int" />
  </xs:complexType>
  <xs:complexType name="ContactInformationType">
    <xs:sequence>
      <xs:element minOccurs="1" maxOccurs="1" name="ContactName" type="xs:string" />
      <xs:element minOccurs="0" maxOccurs="1" name="TypeOfContact" type="xs:string" />
      <xs:element minOccurs="0" name="Phone" type="xs:string" />
      <xs:element minOccurs="0" name="Email" type="xs:string" />
      <xs:element minOccurs="0" name="Address" type="xs:anyType" />
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="MetaDataType">
    <xs:sequence>
      <xs:element name="TopicCategory" type="xs:string" />
      <xs:element name="Title" type="xs:string" />
      <xs:element name="Abstract" type="xs:string" />
      <xs:element name="ProfileVersion" type="xs:string" />
      <xs:element name="MetadataLink" type="xs:anyURI" />
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="QualityControlLevelType">
    <xs:simpleContent>
      <xs:extension base="xs:string">
        <xs:attribute name="QualityControlLevelID" type="xs:int" />
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>
  <xs:complexType name="OffsetType">
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="1" name="offsetValue" type="xs:float" />
      <xs:element minOccurs="0" maxOccurs="1" name="offsetDescription" type="xs:string" />
      <xs:element ref="units" />
      <xs:element minOccurs="0" maxOccurs="1" default="true" name="offsetIsVertical" type="xs:boolean" />
      <xs:element minOccurs="0" maxOccurs="1" name="offsetHorizDirectionDegrees" type="xs:int" />
    </xs:sequence>
    <xs:attribute name="offsetTypeID" type="xs:int" />
  </xs:complexType>
</xsi:schema>